home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
programs
/
mbbs12d.zip
/
MACROMSG.MAC
< prev
next >
Wrap
Text File
|
1992-06-23
|
35KB
|
1,155 lines
MACROMSG.MAC v1.2d
by Jeff Oberlee (C)opyright 1992
{:alr} {MACL MACROBBS.MAC,WF3} {:alu} {MACL MACROBBS.MAC,bbs}
{:esc_menu}
{IFCA ,ESM} {SEND ^J^M%an7%%an9%Time comes to a grinding halt! %an0}
{:ESM} {SETE-P0 ESM2} {SETV ch}
{PARM ,,,,0}
{INPU ch, PRESS: [ENTER] to CHAT, [U]seredit, [D]OS, [H]angup}
{COMP ch,h} {IFCO ESM4}
{COMP ch,d} {IFCO ESM5}
{COMP on,} {IFCO ESM}
{COMP ch,u} {IFCO ESM3}
{COMP ch,} {IFCO ,ESM}
{:ESM1} {COMP cf,} {IFCO CT8,ESM}
{:ESM2} {SETE-P0 esc_menu}
{IFCA ,ESM6} {SEND %an3%Then suddenly...} {PAUS 1}
{:ESM6} {RETURN}
{:ESM5} {SHEL} {GOTO ESM}
{:ESM3} {COMP open,y} {IFCO ESM}
{:ESM8} {COMP login_name,} {IFCO ESM}
{SETV lname,%login_name} {INPU lname,EDIT: Handle (3-30 characters)}
{COMP lname,1} {IFCO-GE ESM8}
{LENG %lname} {COMP _len,3} {IFCO-L ESM8}
{LENG %lname} {COMP _len,30} {IFCO-G ESM8}
{:ESM9} {SETV temp,%protocol} {INPU temp,EDIT: Protocol (1 letter)}
{LENG %temp} {COMP _len,1} {IFCO ,ESM9}
{:ESM0} {SETV ch,%al} {INPU ch,EDIT: Access Level (0-999)}
{COMP ch,999} {IFCO-G ESM0}
{SETV al,%ch}
{SETV protocol,%temp}
{SETV row,%_row} {SETV col,%_col} {DISP 2,2,0F,%an9 * Saving * }
{COMP lname,%login_name} {IFCO ESM7}
{SETV login_name,%lname}
{SETE time_out}
{CALL update_clist}
{:ESM7} {CALL write_user}
{DISP 2,2,07, }
{DISP %row,%col,,}
{SETV row} {SETV col} {SETV lname}
{GOTO ESM}
{:ESM4} {SETV s,2} {GOTO time_out}
{:chat}
{SETV temp,0} {SETV ccount,0}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Chat request} {WCLO}
{SEND ^J^M^J%an4%Paging %sysop ...^J^M}
{SPOC n} {SEND %an3%Press %an0[ESC]%an3 then %an0[ENTER]%an3 to chat with%an7 %login_name %an3...^J^M} {SPOC y}
{:CT7} {INCR ccount} {SETV-S ch,an%ccount}
{SEND %ch█}
{SEND ^G} {SEND ^G} {SEND ^G} {PAUS 2}
{COMP ccount,5} {IFCO-G ,CT7}
{:CT6} {SETV chat,CHAT}
{SEND ^M%an0%Sorry, %sysop isn't around right now.^J^M}
{SEND %an0%However, the chat flag has been set.^J^M^J}
{GOTO CT9}
{:CT8} {SETV tl,%_ela}
{SETG 240,time_out}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Started chat} {WCLO}
{COMP cb,y} {IFCO ,CT14}
{CAPT y,%datadir%CHAT.LOG}
{:CT14} {SEND ^J^M^J%an3%You've just entered . . . %an7%The Twilight Zone. %an3%Reality vanishes.^J^M}
{SEND %an2(Type "%an0%bye!%an2" on a blank line to exit when desired.)^J^M}
{SETV cf,1} {SETV co1,%an0} {SETV co2,%an3}
{SETE-P0 esc_menu}
{PUSH}
{:CT2} {COMP cf,1} {IFCO CT3}
{SEND %co2} {SETV cf,1} {GOTO CT4}
{:CT3} {SEND %co1} {SETV cf,2}
{:CT4} {SETV cline}
{:CT5} {SEND ^J}
{:CT13} {SEND ^M%cline}
{GETS-AH cline,78,CT2}
{COMP cline,/c} {IFCO switch_c}
{COMP cline,bye!} {IFCO CT1}
{COMP cline,bye!!} {IFCO time_out}
{COMP cline,/scroll} {IFCO view_scroll}
{COMP cline,NO CARRIER} {IFCO time_out}
{LENG %cline} {COMP %_len,77} {IFCO-LE CT4}
{SETV ccount,80} {SETV dline,0} {SETV cline, %cline}
{:CT11} {DECR ccount} {INCR dline}
{COMP ccount,60} {IFCO-LE CT4}
{SUBS ch,%ccount,1,%cline}
{COMP ch, } {IFCO ,CT11}
{COMP ccount,79} {IFCO CT4}
{INCR ccount}
{SUBS cline,%ccount,%dline,%cline}
{SETV ccount,0}
{:CT12} {INCR ccount} {SEND ^H}
{COMP ccount,%dline} {IFCO ,CT12}
{GOTO CT5}
{:CT1} {CAPT n}
{SETV ch,%_ela} {DECR ch,%tl} {INCR tlc,%ch} {SETV tl}
{SEND ^J^M^J%an3%You've just left . . . %an7%The Twilight Zone. %an3%Reality restored.^J^M^J}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Ended chat} {WCLO}
{SETV cf} {SETV co1} {SETV co2} {SETV chat} {SETV cline}
{POPS}
{:CT9} {SETV ccount}
{SETE-P0 esc_menu}
{CALL press_any_key}
{RETURN}
{:switch_c}
{:SW1} {SEND ^M%an0(0 %an1%1 %an2%2 %an3%3 %an4%4 %an5%5 %an6%6 %an7%7%an0) ^H}
{GETS-H ch,1,SW1}
{COMP ch,0} {IFCO-L SW1}
{COMP ch,7} {IFCO-G SW1}
{SEND ^M ^M}
{COMP cf,1} {IFCO ,SW3}
{SETV-S co2,an%ch} {SEND %co2} {GOTO SW4}
{:SW3} {SETV-S co1,an%ch} {SEND %co1}
{:SW4} {SETV cline}
{GOTO CT13}
{:view_scroll}
{SCROLL}
{GOTO CT4}
{:update_clist}
{ROPE %datadir%CALLERS.LST,UC1}
{WOPE %datadir%TEMP.000}
{:UC2} {READ ch} {READ cline} {READ dline}
{COMP ch,%userno} {IFCO UC3}
{WRIT %ch} {WRIT %cline} {WRIT %dline} {GOTO UC2}
{:UC3} {COMP s,1} {IFCO UC5}
{:UC4} {WRIT %ch}
{WRIT %login_name}
{WRIT %password}
{:UC5} {READ dline} {WRIT %dline} {GOTO UC5}
{:UC1} {WCLO}
{EXEC-N COPY %datadir%TEMP.000 %datadir%CALLERS.LST}
{EXEC-N DEL %datadir%TEMP.000}
{RETURN}
{:write_user}
{WOPE %userdir%%userno.MHS}
{WRIT %login_name}
{WRIT %password}
{WRIT %al}
{WRIT %protocol}
{WRIT %expert}
{WRIT %a}
{WRIT %fa}
{WCLO}
{RETURN}
{:read_data}
{ROPE %datadir%CALLER.DAT,RD1}
{READ %callno}
{READ %tdcalls}
{READ pub}
{READ pvt}
{READ ttu}
{READ tf}
{READ ldate}
{READ stime}
{READ ftime}
{READ l_caller}
{READ luserno}
{READ uhigh}
{READ mhigh}
{READ fhigh}
{RCLO}
{:RD1} {RETURN}
{:write_data}
{WOPE %datadir%CALLER.DAT}
{WRIT %callno}
{WRIT %tdcalls}
{WRIT %pub}
{WRIT %pvt}
{WRIT %ttu}
{WRIT %tf}
{WRIT %ldate}
{WRIT %stime}
{WRIT %ftime}
{WRIT %login_name}
{WRIT %userno}
{WRIT %uhigh}
{WRIT %mhigh}
{WRIT %fhigh}
{WCLO}
{RETURN}
{:time_out}
{COMP open,yy} {IFCO ,TKO} {CALL E10}
{:TKO} {MACL MACROBBS.MAC,time_out}
{:cls}
{CLEA}
{COMP on,} {IFCO CLS3}
{COMP mnu,A} {IFCO CLS1}
{SEND ^[[2J}
{GOTO CLS2}
{:CLS1} {SEND ^L}
{:CLS2} {DISP 1,1,4F,│ }
{DISP 1,3,4E,%login_name #%userno}
{DISP 1,38,47,AL=%al}
{DISP 1,40,47,%mspeed}
{DISP 1,57,47,%_ela mins}
{DISP 1,70,4F,%an9%%chat}
{DISP 2,1,4F,└──────────────────────────────────────────────────────────────────────────────}
{DISP 3,1,07,}
{:CLS3} {RETURN}
{:press_any_key}
{COMP mnu,a} {IFCO PAK1}
{SEND %an3%%an9^[[24;1h^[[24;1f[Press Any Key]%an0}
{GOTO PAK2}
{:PAK1} {SEND ^J^M^J[Press Any Key]}
{:PAK2} {SETG 240,time_out}
{GETS-H temp,1,PAK}
{:PAK} {SEND ^M ^M}
{SETV temp}
{RETURN}
{:dsp_file}
{IFEX %dump_file,,DF5}
{SETV count,0} {SETV open,y}
{INCR count,2}
{SETE time_out}
{ROPE %dump_file,DF3}
{READ dline} {SEND %an7%To: %an3%%dline^J^M} {INCR count}
{READ dline} {SEND %an7%From: %an1%%dline^J^M} {INCR count}
{READ dline} {SEND %an7%Subj: %an4%%dline^J^M} {INCR count}
{READ dline} {SEND %an7%Date: %an0%%dline^J^M} {INCR count}
{READ dline}
{COMP dline,0} {IFCO DF11}
{COMP dline,} {IFCO ,DF10}
{SEND %an0%%dline^J^M} {INCR count}
{:DF11} {SETV trace}
{GOTO DF}
{:DF10} {SEND %an5%Trace msg#: %an0%%dline^J^M} {INCR count}
{SETV trace,%dline}
{:DF} {PUSH}
{SETE-P0 esc_menu}
{:DF1} {READ dline}
{COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,LQ1}
{SETV dline,%an4▀▀▀▀▀▀ %an7%Quote %an4▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀%an7}
{GOTO DF8}
{:LQ1} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,DF8}
{SETV dline,%an4▄▄▄▄▄▄ %an7%UnQuote %an4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄%an0}
{:DF8} {SEND ^M%dline%%an0^J^M}
{INCR count}
{COMP count,22} {IFCO DF4}
{GOTO DF1}
{:DF2} {RCLO}
{:DF3} {SETV dline} {SETV ch} {SETV count}
{SETV open}
{POPS}
{RETURN}
{:DF4} {SETV count,0}
{SEND %an4%More? %an7(Y,n) %an0: }
{SETG 240,DF9}
{:DF6} {GETS-H ch,1,DF7}
{COMP ch,y} {IFCO DF7}
{COMP ch,n} {IFCO DF7}
{SEND ^H} {GOTO DF6}
{:DF7} {SEND ^M ^M}
{COMP ch,n} {IFCO DF2}
{:DF9} {CALL CLS}
{SEND ^J^M}
{GOTO DF1}
{:DF5} {SEND ^J^M^G%an1%Error: %an7%File not found: %dump_file}
{CALL press_any_key}
{RETURN}
{:screen_full}
{SEND %an4%More? %an7(Y,n) %an0: }
{SETG 120,SF3}
{:SF1} {GETS-H ch,1,SF2}
{COMP ch,y} {IFCO SF4}
{COMP ch,n} {IFCO SF4}
{SEND ^H} {GOTO SF1}
{:SF2} {SETV ch,y} {GOTO SF4}
{:SF3} {SETV ch,n}
{:SF4} {SEND ^M ^M}
{RETURN}
{:expert_tog}
{COMP expert,ON}
{IFCO ET1}
{SETV expert,ON}
{GOTO ET2}
{:ET1} {SETV expert,OFF}
{:ET2} {RETURN}
{:ansi}
{SETV mnu,n}
{SETV an0,^[[0;2;37m} - gray
{SETV an1,^[[0;1;31m} - red
{SETV an2,^[[0;2;32m} - green
{SETV an3,^[[0;1;33m} - yellow
{SETV an4,^[[0;1;34m} - blue
{SETV an5,^[[0;1;35m} - magenta
{SETV an6,^[[0;1;36m} - cyan
{SETV an7,^[[0;1;37m} - white
{SETV an9,^[[5m} - blink
{SETV an12,^[[44m} - blue background
{SETV an13,^[[41m} - red background
{RETURN}
{:cd}
{IFCA cd1}
{COMP on,1} {IFCO time_out}
*-{:cd1} {COMP on,1} {IFCO ,cd2}
{COMP _ela,%tlc} {IFCO-GE time_out}
{:cd2} {RETURN}
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
{:start}
{SETE-P0 esc_menu}
{PUSH}
{CALL cd}
{:MB1} {SETV n} {SETV ta}
{CALL read_baseinfo}
{COMP expert,ON} {IFCO MB4}
{:MB8} {CALL cls}
{SEND ^J^M^J^J%an4%}
{SEND ^J^M ┌───────────────────────────────────────────────────┐}
{SEND ^J^M │ %an0░░░░░░░░░░░░░░░░░░%an7 Message Base %an0░░░░░░░░░░░░░░░░░%an4 │}
{SEND ^J^M └───────────────────────────────────────────────────┘}
{SEND ^J^M [%an0%<%an4] Reverse [%an0%A%an4] Area List [%an0%>%an4] Forward^J^M}
{SEND ^J^M %an4[%an0%P%an4] Post in this area [%an0%R%an4] ReviewScan [%an0%F%an4] File Base}
{SEND ^J^M %an4[%an0%N%an4] NewScan ALL areas [%an0%C%an4] Chat [%an0%H%an4] Hall of Fame}
{SEND ^J^M %an4[%an0%T%an4] NewScan THIS area [%an0%X%an4] Xpert Toggle [%an0%Q%an4] MAIN MENU^J^M}
{SEND ^J^M %an0 Enter a command or message number.}
{:MB4} {SEND ^J^M^J%an4%Message Base^J^M}
{SEND %an4[%an2%%bname%%an4] %an0%%_tim^J^M}
{DECR msgno}
{COMP msgno,%himsgno} {IFCO-LE MB10}
{SETV msgno,%himsgno}
{:MB10} {SEND %an3%Msg(s): %an0%%lomsgno-%himsgno %an1%Last read: %an0%%msgno^J^M}
{INCR msgno}
{SETV ch,%tlc} {DECR ch,%_ela}
{SEND %an0%Mins Left: %ch^J^M}
{:MB5} {CALL cd}
{:MB7} {SEND ^M} {COMP expert,ON} {IFCO ,MB9}
{SEND %an4(%an0%?%an4=menu) }
{:MB9} {SEND %an7%MB Command: ^H^H^H^H^H^H^H^H}
{SETE-P0 esc_menu}
{SETG 240,time_out}
{GETS-H ch,1,MB5}
{:MB14}
{SETV dline,ph} {INST dline,%ch} {IFCO ,MB3} {COMP al,0} {IFCO MB6}
{:MB3}
{SETE-P0 esc_menu}
{COMP ch,*} {IFCO time_out}
{COMP ch,?} {IFCO MB8}
{COMP ch,a} {IFCO area_change}
{COMP ch,c} {IFCO chat}
{COMP ch,f} {IFCO file_tran}
{COMP ch,h} {IFCO hall}
{COMP ch,p} {IFCO editor}
{COMP ch,q} {IFCO MB2}
{COMP ch,r} {IFCO review}
{COMP ch,x} {IFCO expert_tog}
{COMP ch,<} {IFCO fast_bak}
{COMP ch,>} {IFCO fast_for}
{SETE time_out}
{COMP ch,n} {IFCO new_all}
{COMP ch,t} {IFCO new_this}
{SETV dline,123456789}
{INST dline,%ch} {IFCO ,MB5}
{COMP himsgno,0} {IFCO MB5}
{GETS-A ch,8,MB5}
{COMP ch,1} {IFCO MB13}
{COMP ch,1} {IFCO-L MB14}
{COMP ch,%lomsgno} {IFCO-GE MB11}
{:MB13} {SETV ch,%lomsgno} {GOTO MB12}
{:MB11} {COMP ch,%himsgno} {IFCO-LE MB12}
{SETV ch,%himsgno}
{:MB12} {IFEX %msgsdir%A%a\%ch.MSG,read}
{SEND ^J^M%an7%Message #%ch not found.} {PAUS 1}
{INCR ch} {GOTO MB11}
{:MB6} {SEND ^J^M%an1%Sorry, your access level does not allow.^J^M}
{GOTO MB5}
{:MB2} {SETV quotemsg} {SETV trace}
{MACL MACROBBS.MAC,main_menu}
{:file_tran}
{IFEX %filedir%F%fa.BAS,FX2}
{IFEX %filedir%F*.BAS,,MB5}
{SETV fa,0}
{:FX1} {INCR fa}
{COMP fa,%fhigh} {IFCO-G MB5}
{IFEX %filedir%F%fa.BAS,,FX1}
{:FX2}
{ROPE %filedir%F%fa.BAS,FX1} {READ ch} {READ ch} {RCLO}
{COMP ch,%al} {IFCO-G FX1}
{MACL MACROFIL.MAC,start}
{:hall}
{SETV quotemsg} {SETV trace}
{MACL MACROREG.MAC,start}
{:fast_for}
{COMP a,%mhigh} {IFCO MB5}
{SETV ch,%a}
{:FF1} {INCR ch}
{COMP ch,%mhigh} {IFCO-G MB5}
{IFEX %msgsdir%A%ch.BAS,,FF1}
{ROPE %msgsdir%A%ch.BAS,FF1} {READ dline} {READ temp} {RCLO}
{COMP al,%temp} {IFCO-L FF1}
{SETV a,%ch}
{CALL read_baseinfo}
{:FF2} {GOTO MB4}
{:fast_bak}
{COMP a,1} {IFCO MB5}
{SETV ch,%a}
{:FB1} {DECR ch}
{COMP ch,1} {IFCO-L MB5}
{IFEX %msgsdir%A%ch.BAS,,FB1}
{ROPE %msgsdir%A%ch.BAS,FB1} {READ dline} {READ temp} {RCLO}
{COMP al,%temp} {IFCO-L FB1}
{SETV a,%ch}
{CALL read_baseinfo}
{:FB2} {GOTO MB4}
{:area_change}
{CALL cls}
{SETV count,0} {SETV aa,%a}
{SEND ^J^M%an3%Message Menagerie...^J^M^J}
{:AC1} {INCR count}
{COMP count,%mhigh} {IFCO-G AC2}
{IFEX %msgsdir%A%count.BAS,,AC1}
{ROPE %msgsdir%A%count.BAS,AC1} {READ %bname} {READ %bal} {RCLO}
{COMP al,%bal} {IFCO-L AC1}
{SEND %an7%%count> %an2%%bname^J^M}
{GOTO AC1}
{:AC2} {SEND ^J^M}
{:AC3} {SEND ^M%an7%Which will it be?%an0 ^H^H}
{SETG 120,time_out}
{CALL cd}
{GETS ch,2,AC4}
{COMP ch,1} {IFCO-L AC3}
{COMP ch,%mhigh} {IFCO-G AC3}
{IFEX %msgsdir%A%ch.BAS,,AC3}
{ROPE %msgsdir%A%ch.BAS,AC3} {READ bname} {READ bal} {RCLO}
{COMP al,%bal} {IFCO-L AC3}
{SETV a,%ch}
{CALL read_baseinfo}
{:AC4} {RETURN}
{:review}
{SEND ^J^M^J}
{:RE1} {SEND %an4%Begin reviewing at which message? %an0(%lomsgno-%himsgno) :%an7 ^H^H^H^H^H^H^H^H}
{GETS ch,8,MB1}
{COMP ch,1} {IFCO-L RE1}
{COMP ch,%lomsgno} {IFCO-GE RE13}
{SETV ch,%lomsgno} {GOTO RE14}
{:RE13} {COMP ch,%himsgno} {IFCO-LE RE14}
{SETV ch,%himsgno}
{:RE14} {IFEX %msgsdir%A%a\%ch.MSG,RE15}
{SEND ^J^M%an7%Message #%ch not found.} {PAUS 1}
{INCR ch} {GOTO RE13}
{:RE15} {DECR ch}
{:RE4} {INCR ch} {COMP ch,%himsgno} {IFCO-G RE3}
{:RE2} {IFEX %msgsdir%A%a\%ch.MSG,,RE4}
{:RE5} {CALL cls}
{SEND %an7%Msg# To: From: Subject:}
{SEND ^J^M----------------------------------------------------------------------------^J^M-
{SETV temp,0}
{:RE7} {INCR temp}
{ROPE %msgsdir%A%a\%ch.MSG,RE8}
{SETV mx,9} {SETV dline,%ch}
{LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx, }
{SEND ^M%an0%%dline%%cline}
{SETV mx,26}
{READ dline} {SUBS dline,1,25,%dline}
{LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx, }
{SEND %an3%%dline%%cline}
{SETV mx,26}
{READ dline} {SUBS dline,1,25,%dline}
{LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx, }
{SEND %an1%%dline%%cline}
{SETV mx,18}
{READ dline} {SUBS dline,1,18,%dline}
{LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx, }
{SEND %an4%%dline%%cline^J^M}
{RCLO}
{:RE8} {INCR ch} {COMP ch,%himsgno} {IFCO-G RE9}
{IFEX %msgsdir%A%a\%ch.MSG,,RE8}
{COMP temp,20} {IFCO RE11}
{GOTO RE7}
{:RE11} {SETV aa,%ch}
{CALL screen_full}
{COMP ch,y} {IFCO RE12}
{COMP expert,ON} {IFCO MB4,MB8}
{:RE12} {SETV ch,%aa}
{GOTO RE5}
{:RE6} {IFEX %msgsdir%A%a\%ch.MSG,RE5}
{:RE3} {SEND ^J^M%an1%That message does not exist.^J^M}
{GOTO RE1}
{:RE9} {SEND ^J^M%an7%<End of messages in %an5%%bname%%an7>}
{:RE10} {COMP expert,ON} {IFCO MB4}
{CALL press_any_key}
{GOTO MB8}
{:trace}
{COMP trace,} {IFCO TR1}
{SEND race}
{INST trace,/} {IFCO ,TR1}
{SETV ch,%_pos} {DECR ch}
{SUBS temp,1,%ch,%trace}
{SETV ch,%_pos} {INCR ch}
{SUBS dline,%ch,8,%trace}
{:TR3} {SETV dump_file,%msgsdir%A%temp\%dline.MSG}
{IFEX %dump_file,,TR1}
{CALL cls}
{SEND ^J^M%an7%TRACE: %an0%Msg# %dline in area %temp^J^M^J}
{CALL dsp_file}
{SEND ^J^M^J%an0<%an7%SPACEBAR %an0= Trace this message, %an7%ENTER %an0= quit Trace> }
{:TR4} {GETS-H ch,1,FW50}
{COMP ch, } {IFCO trace}
{SEND ^H} {GOTO TR4}
{:TR2} {SETV temp,%a} {SETV dline,%trace} {GOTO TR3}
{:TR1} {SEND ^J^M^J%an1%Can't trace message.^J^M} {PAUS 1} {GOTO FW50}
{:new_all}
{PUSH FW6}
{SETV n,1} {SETV ta,%a} {SETV a,0}
{GOTO FW20}
{:new_this}
{PUSH FW6}
{COMP msgno,%himsgno} {IFCO-G ,FW2}
{SEND ^J^M^J%an7<End of messages in %an5%%bname%%an7>^J^M^J}
{POPS}
{GOTO MB5}
{:read}
{PUSH FW6}
{SETV msgno,%ch}
{:FW2} {COMP msgno,%lomsgno} {IFCO-GE FW24}
{INCR msgno} {GOTO FW2}
{:FW24} {COMP msgno,%himsgno} {IFCO-G FW11}
{IFEX %msgsdir%A%a\%msgno.MSG,FW21}
{INCR msgno} {GOTO FW2}
{:FW21} {INCR reads}
{:FW19} {CALL cls}
{SETV dump_file,%msgsdir%A%a\%msgno.MSG}
{SEND ^J^M%an0%Msg# %msgno of %himsgno in %an2%%bname^J^M^J}
{CALL dsp_file}
{SETE time_out}
{INCR msgno}
{:FW6}
{DECR msgno}
{SEND ^J^M%an7[%msgno/%himsgno] %an2%%bname}
{INCR msgno}
{SETV ch,%tlc} {DECR ch,%_ela}
{SEND ^J^M%an0%Mins Left: %ch}
{SEND ^J^M%an3%Read Menu%an0: %an7%R%an0%eply, %an7%P%an0%rev, %an7%A%an0%gain, %an7%N%an0%ext, %an7%T%an0%race, %an7%J%an0%ump}
{COMP al,%sal} {IFCO-L FW26}
{SEND , %an7%S%an0%ysop}
{:FW26} {SEND or %an7%Q%an0%uit?%an3 }
{SETG 300,time_out}
{:FW14} {CALL cd}
{GETS-H ch,1,FW2}
{COMP ch,r} {IFCO ,FW17} {COMP al,0} {IFCO FW18}
{:FW17} {COMP ch,a} {IFCO FW1}
{COMP ch,n} {IFCO FW16}
{COMP ch,p} {IFCO FW4}
{COMP ch,r} {IFCO FW5}
{COMP ch,j} {IFCO FW22}
{COMP ch,s} {IFCO FW27}
{COMP ch,t} {IFCO trace}
{COMP ch,q} {IFCO FW8}
{:FW} {SEND ^H} {GOTO FW14}
{:FW18} {SEND ^J^M%an1%Sorry, your access level does not allow.}
{GOTO FW6}
{:FW1} {SEND gain}
{:FW50} {DECR msgno}
{GOTO FW19}
{:FW16} {SEND ext}
{GOTO FW2}
{:FW4} {SEND revious}
{SETV temp,%lomsgno} {INCR temp}
{:FW25} {COMP msgno,%temp} {IFCO ,FW10}
{SEND ^J^M%an7<Beginning of messages in %an5%%bname%%an7>^J^M} {GOTO FW6}
{:FW10} {DECR msgno,2}
{IFEX %msgsdir%A%a\%msgno.MSG,FW21}
{INCR msgno} {GOTO FW25}
{:FW22} {SEND ump^J^M^J}
{:FW23} {SEND ^M%an4%Enter a message number to jump to. %an0(%lomsgno-%himsgno) : %an3 ^H^H^H^H^H^H^H^H}
{SETG 120,FW6}
{GETS ch,8,FW6}
{COMP ch,1} {IFCO-L FW23}
{COMP ch,%lomsgno} {IFCO-GE FW47}
{SETV ch,%lomsgno} {GOTO FW48}
{:FW47} {COMP ch,%himsgno} {IFCO-LE FW48}
{SETV ch,%himsgno}
{:FW48} {IFEX %msgsdir%A%a\%ch.MSG,FW49}
{SEND ^J^M%an7%Message #%ch not found.} {PAUS 1}
{INCR ch} {GOTO FW47}
{:FW49} {SETV msgno,%ch}
{GOTO FW2}
{:FW5} {SEND eply^J^M}
{DECR msgno}
{SETV r,1} {SETV trace,%a/%msgno}
{SETV quotemsg,%msgsdir%A%a\%msgno.MSG}
{ROPE %quotemsg,FW6}
{READ dline} {READ to} {READ subj} {RCLO}
{INCR msgno}
{CALL editor}
{GOTO FW6}
{:FW8} {SEND uit^J^M}
{CALL update_index}
{:FW9} {POPS}
{:FW3} {RETURN}
{:FW11} {COMP n,1} {IFCO ,FW15}
{SEND ^J^M^J%an7<Finished scanning %an5%%bname%%an7>^J^M}
{CALL update_index}
{:FW20} {INCR a}
{COMP a,%mhigh} {IFCO-G FW13}
{IFEX %msgsdir%A%a.BAS,,FW20}
{ROPE %msgsdir%A%a.BAS,FW20} {READ bname} {READ bal} {RCLO}
{COMP al,%bal} {IFCO-L FW20}
{CALL read_baseinfo}
{CALL cls}
{SEND ^J^M^J%an0 New Scanning %an2%%bname} {PAUS 1}
{COMP msgno,%himsgno} {IFCO-G FW20,FW2}
{:FW13} {SETV a,%ta} {SETV ta}
{CALL cls}
{SEND ^J^M^J%an7<End of available messages>^J^M}
{COMP expert,ON} {IFCO FW9}
{CALL press_any_key}
{GOTO FW9}
{:FW15} {SEND ^J^M%an7<End of messages in %an5%%bname%%an7>^J^M}
{CALL update_index}
{GOTO FW9}
{:FW27} {SEND ysop^J^M}
{:FW28} {SEND ^J^M%an1%Sysop Menu%an0: %an7%D%an0%elete,%an7 E%an0%dit,%an7 M%an0%ove or%an7 Q%an0%uit? %an1}
{:FW29} {CALL cd}
{GETS-H ch,1,FW30}
{COMP ch,d} {IFCO FW31}
{COMP ch,e} {IFCO FW45}
{COMP ch,m} {IFCO FW40}
{COMP ch,q} {IFCO FW30}
{SEND ^H} {GOTO FW29}
{:FW30} {SEND ^J^M} {GOTO FW6}
{:FW31} {SEND elete^J^M}
{SEND ^J^M%an7%DELETE %an1%this message? %an0(y,%an7%N%an0) :%an1 }
{:FW32} {GETS ch,1,FW28}
{COMP ch,n} {IFCO FW28}
{COMP ch,y} {IFCO FW33}
{SEND ^H} {GOTO FW32}
{:FW33} {SEND ^J^M}
{DECR msgno}
{EXEC-N DEL %msgsdir%A%a\%msgno.MSG}
{CALL renumber}
{INCR msgno}
{SEND %an7%Message deleted.} {PAUS 1}
{GOTO FW2}
{:FW40} {SEND ove^J^M^J}
{:FW41} {SEND ^M%an7%MOVE %an3%this message to which message area? %an0(1-%mhigh, ENTER=quit) :%an3 ^H^H}
{GETS ch,2,FW28}
{COMP ch,1} {IFCO-L FW41}
{COMP ch,%a} {IFCO FW41}
{COMP ch,%mhigh} {IFCO-G FW41}
{IFEX %msgsdir%A%ch.BAS,,FW41}
{ROPE %msgsdir%A%ch.BAS,FW41}
{READ dline} {READ temp} {RCLO}
{COMP temp,%al} {IFCO-G FW41}
{ROPE %msgsdir%A%ch.BAS,FW41}
{READ dline} {READ temp} {READ temp} {READ temp} {READ temp} {RCLO}
{INCR temp}
{SEND ^J^M^J%an7%Move this message to %an3%%dline%%an7? %an0(y,%an7%N%an0) : }
{:FW42} {GETS aa,1,FW43}
{COMP aa,n} {IFCO FW43}
{COMP aa,y} {IFCO FW44}
{SEND ^H} {GOTO FW42}
{:FW43} {SEND ^J^M^J} {GOTO FW41}
{:FW44} {SEND ^J^M%an3%Moving message...}
{DECR msgno}
{EXEC-N COPY %msgsdir%A%a\%msgno.MSG %msgsdir%A%ch\%temp.MSG}
{EXEC-N DEL %msgsdir%A%a\%msgno.MSG}
{CALL renumber}
{SETV temp,%msgno} {SETV aa,%a} {SETV a,%ch}
{CALL read_baseinfo}
{INCR %himsgno}
{CALL update_baseinfo}
{CALL del_xs}
{SETV a,%aa} {SETV aa}
{CALL read_baseinfo}
{SETV msgno,%temp}
{INCR msgno}
{GOTO FW2}
{:renumber}
{COMP lomsgno,%himsgno} {IFCO ,FW34}
{SETV lomsgno,1} {SETV himsgno,0} {SETV msgno,0} {GOTO FW37}
{:FW34} {COMP msgno,%himsgno} {IFCO ,FW35}
{:FW36} {DECR himsgno} {DECR msgno}
{IFEX %msgsdir%A%a\%himsgno.MSG,FW37,FW36}
{:FW35} {COMP msgno,%lomsgno} {IFCO ,FW38}
{:FW39} {INCR lomsgno}
{IFEX %msgsdir%A%a\%lomsgno.MSG,,FW39}
{:FW37} {CALL update_baseinfo}
{:FW38} {RETURN}
{:FW45} {SEND dit^J^M}
{DECR msgno}
{COMP mspeed,LOCAL} {IFCO ,FW46}
{EDIT %msgsdir%A%a\%msgno.MSG}
{GOTO FW19}
{:FW46} {SETV em,1}
{SETV dump_file,%msgsdir%A%a\%msgno.MSG}
{SETV lineno,0}
{SEND %an0%Loading...}
{ROPE %dump_file,CL1}
{READ edline} {READ edline} {READ edline}
{READ edline} {READ edline} {READ edline}
{:CL2} {READ edline}
{INCR lineno} {GOTO CL2}
{:CL1} {WOPE-A %dump_file}
{GOTO edit_system}
{:editor}
{CALL cls}
{INCR himsgno}
{SETV dump_file,%msgsdir%A%a\%himsgno.MSG}
{COMP r,1} {IFCO E1}
{SETV trace,0}
{SETV to,Everyone}
{:E1} {SEND ^J^M%an0 (Press ENTER for "%an7%%to%%an0")^J^M}
{SEND %an7%To : %an12 ^M}
{SEND %an7%To : %an12}
{SETG 120,time_out}
{CALL cd}
{GETS t,30,E12}
{SETV to,%t}
{:E2} {SEND ^J^M^J} {COMP r,1} {IFCO ,E3}
{SEND %an0 (Press ENTER for "%an7%%subj%%an0")^J^M}
{:E3} {SEND ^M%an7%Subj: %an12 ^M}
{SEND %an7%Subj: %an12}
{COMP r,1} {IFCO ,E5}
{CALL cd}
{GETS sub,30,E13}
{SETV %subj,%sub} {SETV sub}
{SEND ^J^M}
{GOTO E6}
{:E5} {SETG 120,time_out}
{CALL cd}
{GETS subj,30,E3}
{SEND ^J^M}
{:E6} {WOPE %dump_file}
{SETV open,yy}
{WRIT %to}
{SEND ^J^M%an4%Anonymous? %an0(y,%an7%N%an0) : }
{:AN} {GETS-H ch,1,AN1}
{COMP ch,n} {IFCO AN1}
{COMP ch,y} {IFCO AN2}
{SEND ^H} {GOTO AN}
{:AN1} {WRIT %login_name} {GOTO AN3}
{:AN2} {WRIT [anonymous]}
{:AN3} {WRIT %subj}
{WRIT %_dat %_tim}
{WRIT %trace} {SETV trace}
{WRIT }
{SETV lineno,0}
{SEND ^J^M^J%an7%Maximum of %max lines.^J^M}
{SEND %an1-------------%an0 /s - save %an1-------%an0 /e - editor %an1-------%an0 /abt - abort %an1--------------^J^M}
{COMP r,1} {IFCO ,E4}
{SEND %an1-------------------------------%an0 /q - quoter %an1-----------------------------------^J^M}
{:E4} {SETV dline}
{:E7} {SEND ^J^M%an3%%dline}
{SETG 240,E10}
{GETS-AH dline,78,E18}
{COMP dline,/e} {IFCO edit_system}
{COMP dline,/q} {IFCO quote}
{COMP dline,/s} {IFCO E9}
{COMP dline,/abt} {IFCO E10}
{SETV dline, %dline}
{LENG %dline} {COMP %_len,78} {IFCO-LE E8}
{SETV ccount,80} {SETV temp,0}
{:E15} {DECR ccount} {INCR temp}
{COMP ccount,60} {IFCO-LE E8}
{SUBS ch,%ccount,1,%dline}
{COMP ch, } {IFCO ,E15}
{COMP ccount,79} {IFCO E8}
{SETV ch,0}
{:E16} {INCR ch} {SEND ^H}
{COMP ch,%temp} {IFCO ,E16}
{SETV ch,78} {DECR ch,%temp}
{SUBS cline,2,%ch,%dline}
{WRIT %cline} {SETV cline}
{INCR ccount}
{SUBS dline,%ccount,%temp,%dline}
{INCR lineno} {COMP lineno,%max} {IFCO-LE E7,E17}
{:E8} {SUBS dline,2,100,%dline}
{:E18} {WRIT %dline}
{INCR lineno} {COMP lineno,%max} {IFCO-LE E4}
{:E17} {SEND ^J^M%an7%You have reached the line limit.^J^M} {GOTO edit_system}
{:E9} {WCLO}
{SEND ^J^M%an1%Saving}
{COMP em,1} {IFCO E11}
{SEND #%himsgno...}
{CALL read_data}
{INCR pub}
{SETV ftime,%_tim}
{CALL write_data}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Posted "%subj" on %bname%%an0} {WCLO}
{CALL update_baseinfo}
{CALL del_xs}
{GOTO E11}
{:E10} {WCLO}
{EXEC-N DEL %dump_file}
{SEND ^J^M%an1%Message aborted and deleted.^J^M} {PAUS 1}
{DECR himsgno}
{:E11} {SETV r} {SETV dline} {SETV open} {SETV subj} {SETV to}
{SETV trace} {SETV lineno}
{COMP em,1} {SETV em} {IFCO FW19}
{RETURN}
{:E12} {SEND %to}
{GOTO E2}
{:E13} {SEND %subj^J^M}
{GOTO E6}
{:del_xs}
{COMP %maxmsg,0} {IFCO E21}
{COMP himsgno,%maxmsg} {IFCO-LE E21}
{SETV ch,%himsgno} {DECR ch,%maxmsg}
{:E19} {IFEX %msgsdir%A%a\%lomsgno.MSG,,E20}
{EXEC-N DEL %msgsdir%A%a\%lomsgno.MSG}
{:E20} {INCR lomsgno}
{COMP lomsgno,%ch} {IFCO-LE E19}
{CALL update_baseinfo}
{:E21} {SEND %an0%Ok}
{RETURN}
{:update_index}
{IFEX %msgsdir%A%a.IND,,UIX5}
{SEND %an0%Updating index...}
{ROPE %msgsdir%A%a.IND,UIX4}
{WOPE %datadir%TEMP.000}
{SETV mic,0}
{:UIX1} {INCR mic} {READ mi}
{COMP mic,%userno} {IFCO UIX2}
{WRIT %mi} {GOTO UIX1}
{:UIX2} {WRIT %msgno}
{:UIX3} {READ mi} {WRIT %mi} {GOTO UIX3}
{:UIX4} {WCLO}
{EXEC-N COPY %datadir%TEMP.000 %msgsdir%A%a.IND}
{SETV mic} {SETV mi}
{:UIX5} {RETURN}
{:update_baseinfo}
{WOPE %msgsdir%A%a.BAS}
{WRIT %bname}
{WRIT %bal}
{WRIT %maxmsg}
{WRIT %lomsgno}
{WRIT %himsgno}
{WCLO}
{RETURN}
{:read_baseinfo}
{ROPE %msgsdir%A%a.BAS,RB1}
{READ bname}
{READ bal}
{READ maxmsg}
{READ lomsgno}
{READ himsgno}
{RCLO}
{ROPE %msgsdir%A%a.IND,RB1}
{SETV mic,0}
{:RB2} {READ msgno} {INCR mic}
{COMP mic,%userno} {IFCO ,RB2}
{RCLO}
{:RB1} {SETV mic}
{RETURN}
{:find_line}
{SEND %an7%Searching...}
{ROPE %datadir%RTEMP.000,FL7}
{READ edline} {READ edline} {READ edline}
{READ edline} {READ edline} {READ edline}
{SETV ccount,0}
{:FL6} {INCR ccount}
{READ edline}
{COMP ccount,%fline} {IFCO ,FL6}
{RCLO}
{:FL7} {SEND ^M ^M}
{COMP edline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,FL8}
{SETV edline,%an4▀▀▀▀▀▀ %an7%Quote %an4▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀%an7}
{GOTO FL9}
{:FL8} {COMP edline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,FL9}
{SETV edline,%an4▄▄▄▄▄▄ %an7%UnQuote %an4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄%an0}
{:FL9} {RETURN}
{:line_update}
{SEND %an7%Updating...}
{ROPE %datadir%RTEMP.000,FL3}
{WOPE %datadir%WTEMP.000}
{READ dline} {WRIT %dline} {READ dline} {WRIT %dline}
{READ dline} {WRIT %dline} {READ dline} {WRIT %dline}
{READ dline} {WRIT %dline} {READ dline} {WRIT %dline}
{COMP t,2} {IFCO ,FL}
{COMP ccount,0} {IFCO FL5}
{:FL} {SETV temp,0}
{:FL0} {INCR temp}
{READ dline}
{COMP temp,%ccount} {IFCO FL1}
{WRIT %dline}
{GOTO FL0}
{:FL1} {COMP t,1} {IFCO FL4}
{COMP t,2} {IFCO ,FL5}
{WRIT %dline}
{:FL5} {WRIT %edline}
{:FL2} {INCR ccount}
{:FL4} {READ dline} {WRIT %dline}
{GOTO FL2}
{:FL3} {WCLO}
{EXEC-N COPY %datadir%WTEMP.000 %datadir%RTEMP.000}
{SETV dline}
{SEND ^M ^M}
{RETURN}
{:edit_system}
{SEND ^M%an0%Loading...}
{WCLO}
{EXEC-N COPY %dump_file %datadir%WTEMP.000}
{EXEC-N COPY %datadir%WTEMP.000 %datadir%RTEMP.000}
{SEND ^M ^M}
{:ES4} {SETV t}
{SEND ^J^M%an1%Editor: %an7%A%an0%bort,%an7%C%an0%ont,%an7%D%an0%elete,%an7%E%an0%dit,%an7%I%an0%nsert,%an7%L%an0%ist,%an7%R%an0%eplace,%an7%S%an0%ave: %an3}
{:ES1} {SETG 120,time_out}
{GETS-H ch,1,ES1}
{COMP ch,a} {IFCO abort}
{COMP ch,c} {IFCO continue}
{COMP ch,d} {IFCO delete}
{COMP ch,e} {IFCO edit_line}
{COMP ch,i} {IFCO insert}
{COMP ch,l} {IFCO list}
{COMP ch,r} {IFCO replace}
{COMP ch,s} {IFCO save}
{:ES3} {SEND ^H} {GOTO ES1}
{:abort}
{COMP em,1} {IFCO ES3}
{SEND bort^J^M}
{SETV edline} {SETV fline}
{EXEC-N DEL %datadir%?TEMP.000}
{WOPE %dump_file}
{GOTO E10}
{:continue}
{COMP lineno,%max} {IFCO-G ES3}
{SEND ontinue^J^M}
{SEND %an7%One moment...}
{EXEC-N COPY %datadir%WTEMP.000 %dump_file}
{SEND ^M%an7%Ok. Carry on... :)%an3^J^M}
{WOPE-A %dump_file}
{GOTO E4}
{:delete}
{SEND elete^J^M^J}
{:D5} {SEND ^M%an4%Line # to DELETE:%an0 ^H^H^H}
{GETS fline,3,R1}
{COMP fline,1} {IFCO-L D5}
{COMP fline,%lineno} {IFCO-G D5}
{SEND ^J^M}
{CALL find_line}
{SEND ^J^M%an0%%edline^J^M}
{SEND ^J^M%an7%DELETE this line? %an0(%an7%Y%an0,n) :%an7 }
{:D3} {GETS-H ch,1,D4}
{COMP ch,y} {IFCO D4}
{COMP ch,n} {IFCO R1}
{SEND ^H} {GOTO D3}
{:D4} {SEND ^J^M}
{SETV edline}
{SETV t,1} {CALL line_update} {DECR lineno}
{SEND %an0%Line deleted.^J^M}
{:D1} {GOTO ES4}
{:D2} {SEND ^H} {GOTO D3}
{:edit_line}
{SEND dit^J^M^J}
{:EL5} {SEND ^M%an4%Line # to EDIT:%an0 ^H^H^H}
{GETS fline,3,R1}
{COMP fline,1} {IFCO-L EL5}
{COMP fline,%lineno} {IFCO-G EL5}
{SEND ^J^M}
{CALL find_line}
{SEND ^J^M%an5%Line %fline reads:^J^M}
{:EL0} {SEND %an0%%edline^J^M}
{SEND ^J^M%an7%Type in the string to replace or press ENTER to abort.^J^M%an3}
{GETS oldstr,60,EL1}
{INST edline,%oldstr}
{COMP %_pos,0} {IFCO-G EL2}
{SEND ^J^M^J%an1%String not found.^J^M^J}
{GOTO EL0}
{:EL2} {SETV spos,%_pos}
{LENG %oldstr} {SETV olen,%_len}
{SETV mx,0}
{SETV ch,79} {LENG %edline} {DECR ch,%_len}
{INCR mx,%ch} {INCR mx,%olen}
{SEND ^J^M^J%an7%Type replacement string or press ENTER to cut.^J^M%an3}
{GETS newstr,%mx,EL3}
{:EL3} {SEND ^J^M}
{DECR spos}
{SUBS lstr,1,%spos,%edline}
{INCR spos,%olen} {INCR spos}
{SUBS rstr,%spos,100,%edline}
{SETV edline,%lstr%%newstr%%rstr%}
{CALL line_update}
{SETV ccount,%fline}
{GOTO EL0}
{:EL1} {SETV olen} {SETV spos} {SETV lstr} {SETV rstr} {SETV newstr} {SETV mx}
{GOTO ES4}
{:insert}
{COMP lineno,%max} {IFCO-G ES3}
{SEND nsert^J^M^J}
{:I4} {SEND ^M%an4%Line # to insert BEFORE:%an0 ^H^H^H}
{GETS fline,3,R1}
{COMP fline,1} {IFCO-L I4}
{COMP fline,%lineno} {IFCO-G I4}
{SEND ^J^M}
{COMP fline,1} {IFCO I2}
{DECR fline} {CALL find_line} {INCR fline} {GOTO I3}
{:I2} {SETV edline,*** BEGINNING OF MESSAGE ***}
{:I3} {SEND ^J^M%an7%INSERTING between these lines:}
{SEND ^J^M^J%an0%%edline^J^M}
{CALL find_line}
{SEND ^J^M%an0%%edline^J^M}
{SEND ^J^M%an7%Type line to insert or press ENTER to abort.^J^M%an3}
{GETS edline,79,I1}
{SEND ^J^M}
{DECR ccount}
{SETV t,2} {CALL line_update} {INCR lineno}
{SEND %an0%Line inserted.^J^M}
{:I1} {GOTO ES4}
{:list}
{SEND ist^J^M}
{SEND ^J^M%an7%Include line numbers? %an0(y,%an7%N%an0) : }
{:L1} {GETS-H temp,1,L4}
{COMP temp,y} {IFCO L4}
{COMP temp,n} {IFCO L4}
{SEND ^H} {GOTO L1}
{:L4} {ROPE %datadir%RTEMP.000,L10}
{READ dline} {READ dline} {READ dline}
{READ dline} {READ dline} {READ dline}
{SEND ^J^M^J%an3%Your message reads:^J^M^J%an0}
{SETV ccount,0}
{:L5} {SETV count,0}
{:L6} {INCR ccount} {INCR count}
{READ dline}
{COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,L11}
{SETV dline,%an4▀▀▀▀▀▀ %an7%Quote %an4▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀%an7}
{GOTO L12}
{:L11} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,L12}
{SETV dline,%an4▄▄▄▄▄▄ %an7%UnQuote %an4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄%an0}
{:L12} {SEND %dline%%an0}
{COMP temp,y} {IFCO ,L7}
{SEND ^M%an7%%ccount:%an0}
{:L7} {SEND ^J^M}
{COMP count,21} {IFCO ,L6}
{CALL screen_full}
{COMP ch,y} {IFCO L5}
{RCLO}
{:L10} {SETV dline}
{GOTO ES4}
{:replace}
{SEND eplace^J^M^J}
{:R2} {SEND ^M%an4%Line # to REPLACE:%an0 ^H^H^H}
{GETS fline,3,R1}
{COMP fline,1} {IFCO-L R2}
{COMP fline,%lineno} {IFCO-G R2}
{SEND ^J^M}
{CALL find_line}
{SEND ^J^M%an5%Line %fline reads:^J^M}
{SEND %an0%%edline^J^M}
{SEND ^J^M%an7%Type new line or press ENTER to abort.^J^M%an3}
{GETS edline,79,I1}
{SEND ^J^M}
{CALL line_update}
{SEND %an0%Line replaced.}
{:R1} {SEND ^J^M}
{GOTO ES4}
{:save}
{SEND ave^J^M}
{SETV edline} {SETV fline}
{EXEC-N COPY %datadir%WTEMP.000 %dump_file}
{EXEC-N DEL %datadir%?TEMP.000}
{WOPE-A %dump_file}
{GOTO E9}
{:quote}
{COMP r,1} {IFCO ,E4}
{:Q1} {ROPE %quotemsg,Q7}
{READ dline} {READ dline} {READ dline} {READ dline} {READ dline}
{COMP dline,} {IFCO Q10}
{READ dline}
{:Q10} {SETV qcount,0}
{SEND ^M ^M%an12 ^M}
{SEND Quoting %to ...^J^M}
{SEND %an12 SPACEBAR = Quote Line N = Skip Line Q = Quit ^J^M}
{:Q2} {SEND ^M%an0%%an13 ^M}
{READ dline}
{COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,Q12}
{SETV dline,▀▀▀▀▀▀ Quote ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀}
{GOTO Q5}
{:Q12} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,Q5}
{SETV dline,▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄}
{GOTO Q5}
{:Q5} {SEND %an0%%dline}
{SETG 60,time_out,n}
{:Q6} {GETS-H ch,1,Q6}
{COMP ch, } {IFCO Q3}
{COMP ch,n} {IFCO Q2}
{COMP ch,q} {IFCO ,Q6}
{RCLO}
{:Q7} {COMP qcount,0} {IFCO Q8}
{WRIT &▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄}
{WRIT }
{INCR lineno,2}
{:Q8} {SETV qcount}
{SEND ^J^M%an7%Finished quoting. Please continue your message ...^J^M}
{GOTO E4}
{:Q3} {INCR qcount}
{COMP qcount,1} {IFCO ,Q9}
{WRIT &▀▀▀▀▀▀ Quote ▀▀▀▀▀▀}
{INCR lineno}
{:Q9} {WRIT %dline}
{INCR lineno}
{GOTO Q2}